<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MDF Lib: MDF Library</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="utillib.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">MDF Lib<span id="projectnumber">&#160;2.2</span>
   </div>
   <div id="projectbrief">Interface against MDF 3/4 files</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search',false);
  $(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="doc-content">
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div><div class="header">
  <div class="headertitle"><div class="title">MDF Library </div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h2><a class="anchor" id="autotoc_md0"></a>
Summary</h2>
<p>The MDF Library is a C++ interface against ASAM MDF files. It supports version 3 and 4 of the files. MDF files are de-facto standard for measurement data files within the automotive industry. It is well suited for long-term storage of data.</p>
<p>The project consist of the following main components.</p>
<ul>
<li>C++ Library with all main functionality.</li>
<li>C++/CLI .NET assembly DLL that simply is a wrapper of the C++ library.</li>
<li>MDF to CSV command line interface. Converts an MDF file to one or more CSV files.</li>
<li>MDF Viewer GUI application that simply display the content of MDF files.</li>
</ul>
<h2><a class="anchor" id="autotoc_md1"></a>
Measurement Data File</h2>
<p>The MDF file consist of several linked file block. For an overview of MDF files see <a href="https://www.asam.net/standards/detail/mdf/wiki/">ASAM MDF wiki</a>.</p>
<p>The first block is an ID block of 64 bytes. The identification block, just defines that this is a MDF file and its version.</p>
<p>The next block is the important HD block. The header block is the main block of the file and holds the links to all other blocks. It have links the following blocks.</p>
<ul>
<li>Meta Data Blocks. In version 4, the meta data about the measurement can embedded into the file.</li>
<li>History Blocks. Describes who and what created or modified the file.</li>
<li>Measurement Data Blocks. Called DG blocks and holds data and channel information.</li>
<li>Attachment Blocks. Can be referenced or embedded into the file.</li>
<li>Event Blocks. Events and general messages that happened during the measurement.</li>
<li>Channel Hierarchy Block. Describe the logical structure for a channel.</li>
</ul>
<h2><a class="anchor" id="autotoc_md2"></a>
Building the project</h2>
<p>The project uses CMAKE for building. The following third-party libraries are used and needs to be downloaded and built.</p>
<ul>
<li>Util Library. Automatically fetched from GitHub.</li>
<li>Boost Library. Set the 'Boost_ROOT' variable to the Boost root path.</li>
<li>Expat Library. Set the 'EXPAT_ROOT' variable to the expat root path.</li>
<li>OpenSSL Library. Set the 'OPENSSL_ROOT' variable to the OpenSSL root path.</li>
<li>ZLIB Library. Set the 'ZLIB_ROOT' variable to the ZLIB root path.</li>
<li>WxWidgets Library. Is required if the GUI application should be built.</li>
<li>Doxygen's application. Is required if the documentation should be built.</li>
<li>Google Test Library. Is required for running and build the unit </li>
</ul>
</div></div><!-- PageDoc -->
<a href="doxygen_crawl.html"></a>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>
